#ifndef SPRITE_ANIM_H
#define SPRITE_ANIM_H
#include "sprite.h"
class SpriteAnim : public Sprite
{
    int current_frame_ = 0;    // 当前帧
    int total_frame_ = 0;      // 总帧数
    int fps_ = 10;             // 帧率
    float frame_timer_ = 0.0f; // 帧计时器
    bool is_loop_ = true;

public:
    static SpriteAnim *addSpriteAnimChild(ObjectScreen *parent, const std::string &file_path, float scale = 1.0f,Anchor anchor=Anchor::CENTER); // 创建精灵动画
    void update(float dt) override;                                                                        // 更新函数
    void setTexture(const Texture &texture) override;                                                      // 设置纹理
    void setFPS(int fps) { fps_ = fps; }                                                                           // 设置帧率
    void setTotalFrame(int total_frame) { total_frame_ = total_frame; }                                            // 设置总帧数;
    void setCurrentFrame(int current_frame) { current_frame_ = current_frame; }                                    // 设置当前帧
    int getCurrentFrame() const { return current_frame_; }                                                         // 获取当前帧
    int getTotalFrame() const { return total_frame_; }                                                             // 获取总帧数
    int getFPS() const { return fps_; } // 获取帧率
    float getFrameTimer() const { return frame_timer_; }                                                           // 获取帧计时器
    void setFrameTimer(float frame_timer) { frame_timer_ = frame_timer; }// 设置帧计时器
    void setLoop(bool is_loop) { is_loop_ = is_loop; }

    bool getLoop() const { return is_loop_; }
};

#endif // SPRITE_ANIM_H